<?php

require_once dirname(__FILE__) . '/../../../model/Login.php';
require_once dirname(__FILE__) . '/../../../model/Cliente.php';
require_once dirname(__FILE__) . '/../../../model/Produto.php';
require_once dirname(__FILE__) . '/../../../model/Venda.php';


class LoginTest extends PHPUnit_Framework_TestCase {
    //testa login correto
    public function testeLogin() {
        $login = new Login();
        $login->login = 'admin';
        $login->senha = 'admin';
        $this->assertEquals(1, $login->logar($login));
    }
    //testa login de usuário não cadastrado
    public function testeLogin2() {
        $login = new Login();
        $login->login = 'user';
        $login->senha = 'admin';
        $this->assertEquals(0, $login->logar($login));
    }
    //testa login com erro de senha
    public function testeLogin3() {
        $login = new Login();
        $login->login = 'admin';
        $login->senha = 'user';
        $this->assertEquals(0, $login->logar($login));
    }
    //testa alteração de senha
    public function testeAlteraSenha() {
        $login = new Login();
        $login->login = 'admin';
        $login->senha = 'adm';
        $this->assertEquals(1, $login->alteraSenha($login));
    }
    //testa alteração de senha de usuário não cadastrado
    public function testeAlteraSenha1() {
        $login = new Login();
        $login->login = 'adm';
        $login->senha = 'user';
        $this->assertEquals(0, $login->alteraSenha($login));
    }
    //recupera a senha original
    public function testeAlteraSenha2() {
        $login = new Login();
        $login->login = 'admin';
        $login->senha = 'admin';
        $this->assertEquals(1, $login->alteraSenha($login));
    }
    //testa a inserção de Clientes
    public function testeCadastraCliente() {
        $cliente = new Cliente();
        $cliente->set("cpf", '11111111111');
        $cliente->set("nome", "Fulano de Tal");
        $cliente->set("esquadrao", "2º");
        $cliente->set("cartao", '1');
        $cliente->set("telefone", '9999999999');
        $cliente->set("endereco", "rua bairro cidade estado");
        $cliente->set("obs", "Fulano");
        $this->assertEquals(1, $cliente->cadastrarCliente($cliente));
    }
    //testa cadastrar cliente já cadastrado
    public function testeCadastraCliente2() {
        $cliente = new Cliente();
        $cliente->set("cpf", '11111111111');
        $cliente->set("nome", "Fulano de Tal");
        $cliente->set("esquadrao", "2º");
        $cliente->set("cartao", '2');
        $cliente->set("telefone", '9999999999');
        $cliente->set("endereco", "rua bairro cidade estado");
        $cliente->set("obs", "Fulano");
        $this->assertEquals(0, $cliente->cadastrarCliente($cliente));
    }
   //testa cadastrar cliente com cartão já cadastrado
    public function testeCadastraCliente3() {
        $cliente = new Cliente();
        $cliente->set("cpf", '11111111110');
        $cliente->set("nome", "Cicrano de Tal");
        $cliente->set("esquadrao", "2º");
        $cliente->set("cartao", '1');
        $cliente->set("telefone", '9999999999');
        $cliente->set("endereco", "rua bairro cidade estado");
        $cliente->set("obs", "Cicrano");
        $this->assertEquals(0, $cliente->cadastrarCliente($cliente));
    }
    //teste busca a cliente já cadastrado
    public function testeBuscaCliente() {
        $cliente = new Cliente();
        $cliente->set("cpf", '11111111111');
        $this->assertEquals(1, mysql_num_rows($cliente->buscaCliente($cliente)));
    }
    //teste busca a cliente não cadastrado
    public function testeBuscaCliente2() {
        $cliente = new Cliente();
        $cliente->set("cpf", '11111111110');
        $this->assertEquals(0, mysql_num_rows($cliente->buscaCliente($cliente)));
    }
    //teste cadastro produto válido
   public function testeCadastraProduto() {
        $Produto = new Produto();
        $Produto->set("id", "10");
        $Produto->set("nome", "Pastel de frango grande");
        $Produto->set("preco", 2.50);
        $this->assertEquals(1, $Produto->cadastrarProduto($Produto));
    }
    //teste cadastro produto já cadastrado
    public function testeCadastraProduto2() {
        $Produto = new Produto();
        $Produto->set("id", "12");        
        $Produto->set("nome", "Pastel de frango grande");
        $Produto->set("preco", 3.50);
        $this->assertEquals(0, $Produto->cadastrarProduto($Produto));
    }

    //teste cadastro código de produto já cadastrado
    public function testeCadastraProduto3() {
        $Produto = new Produto();
        $Produto->set("id", "10");        
        $Produto->set("nome", "Pastel de bacon grande");
        $Produto->set("preco", 3.50);
        $this->assertEquals(0, $Produto->cadastrarProduto($Produto));
    }
    
//teste busca por nome um produto cadastrado
    public function testeBuscaProduto() {
        $Produto = new Produto();
        $Produto->set("nome", "pastel de frango grande");
        $this->assertEquals(1, mysql_num_rows($Produto->buscaProduto($Produto)));
    }
    
    //teste busca por código um produto cadastrado
    public function testeBuscaCodigo() {
        $Produto = new Produto();
        $Produto->set("id", "10");
        $this->assertEquals(1, mysql_num_rows($Produto->buscaCodigo($Produto)));
    }
    
    //teste busca por nome um produto não cadastrado
    public function testeBuscaProduto2() {
        $Produto = new Produto();
        $Produto->set("nome", "pastel");
        $this->assertEquals(0, mysql_num_rows($Produto->buscaProduto($Produto)));
    }
    
        //teste busca por codigo um produto não cadastrado
    public function testeBuscaCodigo2() {
        $Produto = new Produto();
        $Produto->set("id", "21");
        $this->assertEquals(0, mysql_num_rows($Produto->buscaCodigo($Produto)));
    }
/*
    //testa um cadastro de vendas válido
    public function testeCadastroVenda(){
        $Venda = new Venda();
        $Venda->set("cpf", "11111111111");
        $Venda->set("idproduto", "10");
        $Venda->set("quantidade", "1");
        $Venda->set("valortotal", "30");        
        $this->assertEquals(1, $Venda->cadastraVenda($Venda));
    }
        //teste cadastrar venda para usuário não cadastrado
        public function testeCadastroVenda2(){
        $Venda = new Venda();
        $Venda->set("cpf", "11111111110");
        $Venda->set("idproduto", "1");
        $Venda->set("quantidade", "1");
        $Venda->set("valortotal", "30");        
        $this->assertEquals(0, $Venda->cadastraVenda($Venda));
    }
        //teste cadastrar produto não cadastrado
        public function testeCadastroVenda3(){
        $Venda = new Venda();
        $Venda->set("cpf", "11111111111");
        $Venda->set("idproduto", "0");
        $Venda->set("quantidade", "1");
        $Venda->set("valortotal", "30");        
        $this->assertEquals(0, $Venda->cadastraVenda($Venda));
    }
*/
//testa excluir um produto cadastrado
    public function testeExcluiProduto() {
        $Produto = new Produto();
        $Produto->set("nome", "pastel de frango grande");
        $this->assertEquals(1, $Produto->excluiProduto($Produto));
    }
    //testa excluir um produto não cadastrado    
    public function testeExcluiProduto2() {
        $Produto = new Produto();
        $Produto->set("nome", "pastel de frando médio");
        $this->assertEquals(0, $Produto->excluiProduto($Produto));
    }
    //teste alteração de senha de um cliente cadastrado
    public function testeAlteraSenhaCliente() {
        $Cliente = new Cliente();
        $Cliente->set("cpf", '11111111111');
        $Cliente->set("senha", "102030");
        $this->assertEquals(1, $Cliente->alteraSenhaCliente($Cliente));
    }
   //teste alteração de senha de um cliente não cadastrado
    public function testeAlteraSenhaCliente1() {
        $Cliente = new Cliente();
        $Cliente->set("cpf", '200');
        $Cliente->set("senha", "102030");
        $this->assertEquals(0, $Cliente->alteraSenhaCliente($Cliente));
    }
    //testa excluir um cliente cadastrado
    public function testeExcluiCliente() {
        $Cliente = new Cliente();
        $Cliente->set("cpf", '11111111111');
        $this->assertEquals(1, $Cliente->excluiCliente($Cliente));
    }
    //testa excluir um cliente não cadastrado    
    public function testeExcluiCliente2() {
        $Cliente = new Cliente();
        $Cliente->set("cpf", '10000000000');
        $this->assertEquals(0, $Cliente->excluiCliente($Cliente));
    }
}
 
?>
